package ClasesExtras;

import java.text.Normalizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.text.TextUtils;
import android.widget.EditText;

public class ValidacionCampos {

	/* Valida si el campo está vacio */
	public boolean validarCampoVacio(String V) {
		String v = V;
		if (TextUtils.isEmpty(v)) {
			return true;
		}
		return false; // retona false si no está vacio
	}

	/* Valida si el campo contiene espacios */
	public boolean validarCampoEspacio(String E) {
		String e = E;
		if (e.indexOf(' ') != -1) {
			return true; // retorna true si encuentra algun espacio
		}
		return false; // retona false si no existe un espacio vacio en el dato
						// introducido

	}

	/*
	 * metodo que elimina los espacios en el inicio y el fin y deja uno en el
	 * medio
	 */
	public String quitarEspaciosIniFin(String C) {
		String c = C.replaceAll(" +", " ").trim();
		return c;
	}

	/* Valida que no existan caracteres especiales */
	public boolean validaCaracterEspecial(String C) {
		String c = C;
		Pattern p = Pattern.compile("[^A-Za-z0-9.@_-~#]+"); // ("[^A-Za-z ]");
		Matcher m = p.matcher(c);
		if (m.find()) {
			return true; // retorna true si encuentra algo diferente a [A-Za-z ]
		}
		return false;
	}

	/* Valida el minimo y maximo de caracteres dentro del campo de texto */
	public boolean MinMaxCaracter(String Ps, int min, int max) {
		String ps = Ps;
		if (ps.length() < min || ps.length() > max) {
			return true;
		}
		return false;

	}

	/* Valida el campo de contraseña y de confirmar la contraseña son iguales */
	public boolean validarCamposIguales(String Co, String C) {
		String password = Co;
		String confirmPassword = C;
		if (!password.equals(confirmPassword)) {
			return true; // retorna true si los campos son diferentes
		}
		return false;
	}

	// Valida el campo de correo electrónico
	public boolean validarEmail(String correo) {
		Pattern p = Pattern
				.compile("[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})");
		Matcher m = p.matcher(correo);
		if (!m.find()) {
			return true;
		}
		return false;
	}

	/*
	 * Captura el valor de un campo de texto EditText y lo comvierte a String,
	 * retornando el valor
	 */
	public String tomarValorCampo(EditText campo) {
		String box = campo.getText().toString();
		return box; // Retorna el valor del campo de texto
	}

	// valida q el campo sólo tenga números
	public boolean validarNumeros(String abc) {
		String c = abc;
		Pattern p = Pattern.compile("[^\\d+|^\\d+\\.\\d+$]");
		Matcher m = p.matcher(c);
		if (m.find()) {
			return true; // retorna true si encuentra algo diferente a números
		}
		return false;
	}

	public String DeleteAccents(String wordAccent) {
		String strStripped = null;
		// Normalizamos en la forma NFD (Canonical decomposition)
		wordAccent = Normalizer.normalize(wordAccent, Normalizer.Form.NFD);
		// Reemplazamos los acentos con una una expresión regular de Bloque
		// Unicode
		strStripped = wordAccent.replaceAll(
				"\\p{InCombiningDiacriticalMarks}+", "");

		return strStripped;
	}
}
